gint64 frame_time;
gint64 min_next_frame_time;
gint64 sleep_serial;
+#ifdef G_ENABLE_DEBUG
+ gint64 freeze_time;
+#endif
guint flush_idle_id;
guint paint_idle_id;
GdkFrameClockIdle *clock_idle = GDK_FRAME_CLOCK_IDLE (clock);
GdkFrameClockIdlePrivate *priv = clock_idle->priv;
+#ifdef G_ENABLE_DEBUG
+ if (priv->freeze_count == 0)
+ {
+ if (gdk_profiler_is_running ())
+ priv->freeze_time = g_get_monotonic_time ();
+ }
+#endif
+
priv->freeze_count++;
maybe_stop_idle (clock_idle);
}
priv->phase = GDK_FRAME_CLOCK_PHASE_NONE;
priv->sleep_serial = get_sleep_serial ();
+
+#ifdef G_ENABLE_DEBUG
+ if (gdk_profiler_is_running ())
+ {
+ if (priv->freeze_time != 0)
+ {
+ gint64 thaw_time = g_get_monotonic_time ();
+ gdk_profiler_add_mark (priv->freeze_time * 1000,
+ (thaw_time - priv->freeze_time) * 1000,
+ "freeze", "");
+ priv->freeze_time = 0;
+ }
+ }
+#endif
}
}